package Presentacion.Main;

import java.awt.EventQueue;
import java.awt.Rectangle;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.RowFilter;
import javax.swing.SwingConstants;
import java.awt.Font;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.ListSelectionModel;
import java.awt.Color;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.List;
import java.util.Vector;

import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JTextArea;
import javax.swing.JSeparator;

import org.hibernate.Hibernate;

import Fisica.ClienteFisica;
import Fisica.DuenoFisica;
import Fisica.PresupuestoFisica;
import Fisica.VehiculoFisica;
import Hibernate.Cliente;
import Hibernate.Dueno;
import Hibernate.Presupuesto;
import Hibernate.Vehiculo;
import Presentacion.Cliente.ClienteBuscar;
import Presentacion.Presupuesto.PresupuestoBuscar;
import Presentacion.Vehiculo.VehiculoBuscar;

public class MainTallerMitre extends JFrame {
	
/**Atributos de alinear tablas*/	
	private DefaultTableCellRenderer alinearCentro, alinearDerecha, alinearIzquierda;
	

	private JPanel cPanePrincipal;
	

/**Atributos de Clientes*/
	private JTextField jTFClienteNApellido;
	private JTextField jTFClienteNNombre;
	private JTextField jTFClienteNDireccion;
	private JTextField jTFClienteNLocalidad;
	private JTextField jTFClienteNTelefono;
	private JTextField jTFClienteNEMail;
	private JTextField jTFClienteEApellido;
	private JTextField jTFClienteENombre;
	private JTextField jTFClienteEDireccion;
	private JTextField jTFClienteELocalidad;
	private JTextField jTFClienteETelefono;
	private JTextField jTFClienteEEMail;
	private JTextField jTFClienteListarFiltro;
	private JTextField jTFClienteEBuscar;
	private JTable jTClienteLista;
	
	
	private final JTabbedPane jTPaneCliente = new JTabbedPane(JTabbedPane.TOP);;
	private final JTabbedPane jTPaneVehiculo = new JTabbedPane(JTabbedPane.TOP);;
	private final JTabbedPane jTPanePresupuesto = new JTabbedPane(JTabbedPane.TOP);;
	
/**Atributos de Vehiculos*/
	JTextField jTFVehiculoNMarca;
	private JTextField jTFVehiculoNModelo;
	private JTextField jTFVehiculoNPatente;
	private JTextField jTFVehiculoNColor;
	private JTextField jTFVehiculoNAno;
	private JTextField jTFVehiculoListarFiltro;
	private JTextField jTFVehiculoEMarca;
	private JTextField jTFVehiculoEModelo;
	private JTextField jTFVehiculoEPatente;
	private JTextField jTFVehiculoEColor;
	private JTextField jTFVehiculoEAno;
	private JTextField jTFVehiculoEBuscar;
	private JTable jTVehiculoLista;
	
/**Atributos de Presupuesto*/
	private JTable jTPresupuestoLista;
	private JTextField jTFPresupuestoListarFiltro;
	private JTextField jTFPresupuestoEMarca;
	private JTextField jTFPresupuestoEModelo;
	private JTextField jTFPresupuestoEPatente;
	private JTextField jTFPresupuestoEColor;
	private JTextField jTFPresupuestoEAno;
	private JTextField lblPresupuestoCCFiltro;
	private JTextField jTFPresupuestoCCDueno;
	private JTextField jTFPresupuestoCCVehiculo;
	private JTextField jTFPresupuestoCCImporteAPagar;
	private JTable jTPresupuestoCCCuotas;
	private JTextField jTFPresupuestoNApellido;
	private JTextField jTFPresupuestoNNombre;
	private JTextField jTFPresupuestoNLocalidad;
	private JTextField jTFPresupuestoNDireccion;
	private JTextField jTFPresupuestoNMail;
	private JTextField jTFPresupuestoNTel;
	private JTextField jTFPresupuestoNModelo;
	private JTextField jTFPresupuestoNMarca;
	private JTextField jTFPresupuestoNColor;
	private JTextField jTFPresupuestoNPatente;
	private JTextField jTFPresupuestoNAno;
	private JTextField jTFPresupuestoNCosto;
	private JTextField jTFPresupuestoNTpoEstimado;
	private JTextField jTFPresupuestoNValidoH;
	private JTextField jTFPresupuestoEFiltroBuscar;
	
		
//utilizado para filtrar tablas
	public DefaultTableModel modelClienteEdit = new DefaultTableModel();
	public TableRowSorter<TableModel> modeloOrdenadoClientEdit; //usado para ordenar en el filtrado
		
	public DefaultTableModel modelVehiculoEdit = new DefaultTableModel();
	public TableRowSorter<TableModel> modeloOrdenadoVehicEdit;
	
	public DefaultTableModel modelPresupuestoEdit = new DefaultTableModel();
	public TableRowSorter<TableModel> modeloOrdenadoPresuEdit;
	
	

	/**
	 * probar correr ventana MAINTALLERMITRE.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					MainTallerMitre frame = new MainTallerMitre();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	
/**
 * Create the frame.
 */
	public MainTallerMitre() {
		setTitle("Taller Mitre");
//inicializo alineaciones de tabla.
		initAlineacionTablas();		
		
		setBackground(Color.BLACK);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 668, 496);
		cPanePrincipal = new JPanel();
		cPanePrincipal.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(cPanePrincipal);
		cPanePrincipal.setLayout(null);
		
/**Pregunto si al presionar la "X" esta seguro de que quiere cerrar la ventana.*/
		this.addWindowListener(new WindowAdapter() {
	           public void windowClosing(WindowEvent e) {
	        	   setDefaultCloseOperation(0); 
	        	   cerrarVentana();
	           }
	       });

/**
 * EMPIEZO A CARGAR DATOS FORMATOS DE BOTONES
 * */
/*boton cliente*/
		JButton btnCliente = new JButton("");
		btnCliente.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				escuchadorPANELCLIENTE();
			}
		});
		btnCliente.setToolTipText("Clientes");
		btnCliente.setIcon(new ImageIcon(MainTallerMitre.class.getResource("/Presentacion/Main/img/cliente.png")));
		btnCliente.setBounds(10, 48, 106, 111);
		cPanePrincipal.add(btnCliente);
		
/*boton vehiculo*/
		JButton btnVehiculo = new JButton("");
		btnVehiculo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				escuchadorPANELVEHICULO();
			}
		});
		btnVehiculo.setToolTipText("Veh\u00EDculos");
		btnVehiculo.setIcon(new ImageIcon(MainTallerMitre.class.getResource("/Presentacion/Main/img/ruedaYllave.png")));
		btnVehiculo.setBounds(10, 170, 106, 98);
		cPanePrincipal.add(btnVehiculo);
		
/*boton presupuesto*/
		JButton btnPresupuesto = new JButton("");
		btnPresupuesto.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				escuchadorPANELPRESUPUESTO();
			}
		});
		btnPresupuesto.setToolTipText("Presupuestos");
		btnPresupuesto.setIcon(new ImageIcon(MainTallerMitre.class.getResource("/Presentacion/Main/img/Presupuesto.png")));
		btnPresupuesto.setBounds(10, 293, 106, 98);
		cPanePrincipal.add(btnPresupuesto);

		
/** * FIN CARGA DATOS FORMATOS DE BOTONES * */
		
/** * EMPIEZO A CARGAR DATOS FORMATOS DE MENU PRINCIPAL * */		
		JMenuBar menuBarPrincipal = new JMenuBar();
		menuBarPrincipal.setBounds(0, 0, 662, 21);
		cPanePrincipal.add(menuBarPrincipal);
		
		JMenu mnArchivo = new JMenu("Archivo");
		menuBarPrincipal.add(mnArchivo);
		
		JMenuItem menuItem = new JMenuItem("Salir");
		menuItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				cerrarVentana();
			}
		});
		
		JMenuItem mnCerrarSesion = new JMenuItem("Cerrar sesi\u00F3n");
		mnCerrarSesion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//cerrar session de usuario.			
			}
		});
		mnArchivo.add(mnCerrarSesion);
		mnArchivo.add(menuItem);
		
		JMenu mnVer = new JMenu("Ver");
		menuBarPrincipal.add(mnVer);
		
		JMenu mitmVerCliente = new JMenu("Cliente");
		mnVer.add(mitmVerCliente);
		
		JMenuItem mitmClienteNuevo = new JMenuItem("Nuevo");
		mitmClienteNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuClienteNuevo();
			}
		});
		mitmVerCliente.add(mitmClienteNuevo);
		
		JMenuItem mitmClienteListar = new JMenuItem("Listar");
		mitmClienteListar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuClienteListar();
			}
		});
		mitmVerCliente.add(mitmClienteListar);
		
		JMenuItem mitmClienteEditar = new JMenuItem("Editar");
		mitmClienteEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuClienteEditar();
			}
		});
		mitmVerCliente.add(mitmClienteEditar);

		JMenu mitmVerVehiculo = new JMenu("Veh\u00EDculo");
		mnVer.add(mitmVerVehiculo);
		
		JMenuItem mitmVehiculoNuevo = new JMenuItem("Nuevo");
		mitmVehiculoNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuVehiculoNuevo();
			}
		});
		mitmVerVehiculo.add(mitmVehiculoNuevo);
		
		JMenuItem mitmVehiculoListar = new JMenuItem("Listar");
		mitmVehiculoListar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuVehiculoListar();
			}
		});
		mitmVerVehiculo.add(mitmVehiculoListar);
		
		JMenuItem mitmVehiculoEditar = new JMenuItem("Editar");
		mitmVehiculoEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuVehiculoEditar();
			}
		});
		mitmVerVehiculo.add(mitmVehiculoEditar);
		
		JMenu mitmVerPresupuesto = new JMenu("Presupuesto");
		mnVer.add(mitmVerPresupuesto);
		
		JMenuItem mitmPresupuestoNuevo = new JMenuItem("Nuevo");
		mitmPresupuestoNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuPresupuestoNuevo();
			}
		});
		mitmVerPresupuesto.add(mitmPresupuestoNuevo);
		
		JMenuItem mitmPresupuestoListar = new JMenuItem("Listar");
		mitmPresupuestoListar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuPresupuestoListar();
			}
		});
		mitmVerPresupuesto.add(mitmPresupuestoListar);
		
		JMenuItem mitmPresupuestoEditar = new JMenuItem("Editar");
		mitmPresupuestoEditar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuPresupuestoEditar();
			}
		});
		mitmVerPresupuesto.add(mitmPresupuestoEditar);
		JMenuItem mitmPresupuestoCC = new JMenuItem("Cuentas Corrientes");
		mitmPresupuestoCC.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				menuPresupuestoCC();
			}
		});
		mitmVerPresupuesto.add(mitmPresupuestoCC);
		
		JMenu mnEditar = new JMenu("Editar");
		menuBarPrincipal.add(mnEditar);
		
		JMenuItem mitmEditarCliente = new JMenuItem("Cliente");
		mitmEditarCliente.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//llamar a editar cliente
				menuClienteEditar();
			}
		});
		mnEditar.add(mitmEditarCliente);
		
		JMenuItem mitmEditarVehiculo = new JMenuItem("Veh\u00EDculo");
		mitmEditarVehiculo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				menuVehiculoEditar();
//llamar a editar Vehiculo				
			}
		});
		mnEditar.add(mitmEditarVehiculo);
		
		JMenuItem mitmEditarPresupuesto = new JMenuItem("Presupuesto");
		mitmEditarPresupuesto.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//llamar a editar Presupuesto.				
				menuPresupuestoEditar();
			}
		});
		mnEditar.add(mitmEditarPresupuesto);
		
		
		JMenu mnAyuda = new JMenu("Ayuda");
		menuBarPrincipal.add(mnAyuda);
		
		JMenuItem mitmAcercaDe = new JMenuItem("Acerca de");
		mitmAcercaDe.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//llamar al menu de Acerda De la aplicacinn.				
			}
		});
		mnAyuda.add(mitmAcercaDe);
		
		JMenuItem mitmFunciones = new JMenuItem("Funciones");
		mitmFunciones.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//llamar al menu de funciones.				
			}
		});
		mnAyuda.add(mitmFunciones);
		
		JMenuItem mitmAyuda = new JMenuItem("Ayuda");
		mitmAyuda.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//llamar al menu de ayuda de funciones rapidas de la app.				
			}
		});
		mnAyuda.add(mitmAyuda);
		

		
/** * FIN CARGA DATOS FORMATOS DE MENU PRINCIPAL * */
		
/** * EMPIEZO A CARGAR DATOS FORMATOS DE PANEL CLIENTE * */
		jTPaneCliente.setBounds(126, 48, 530, 415); 

/*Cliente: Nuevo*/		
		JPanel jPClienteNUEVO = new JPanel();
		jPClienteNUEVO.setToolTipText("Nuevo Cliente");
		jTPaneCliente.addTab("Nuevo", null, jPClienteNUEVO, null);
		jPClienteNUEVO.setLayout(null);
		
		JLabel lblClienteNApellido = new JLabel("Apellido");
		lblClienteNApellido.setBounds(10, 50, 60, 14);
		jPClienteNUEVO.add(lblClienteNApellido);
		
		JLabel lblClienteNNombre = new JLabel("Nombre");
		lblClienteNNombre.setBounds(10, 75, 60, 14);
		jPClienteNUEVO.add(lblClienteNNombre);
		
		JLabel lblClienteNDir = new JLabel("Direcci\u00F3n");
		lblClienteNDir.setBounds(10, 100, 60, 14);
		jPClienteNUEVO.add(lblClienteNDir);
		
		JLabel lblClienteNLocalidad = new JLabel("Localidad");
		lblClienteNLocalidad.setBounds(10, 125, 60, 14);
		jPClienteNUEVO.add(lblClienteNLocalidad);
		
		JLabel lblClienteNTelefono = new JLabel("Tel\u00E9fono");
		lblClienteNTelefono.setBounds(10, 150, 60, 14);
		jPClienteNUEVO.add(lblClienteNTelefono);
		
		JLabel lblClienteNEmail = new JLabel("E-mail");
		lblClienteNEmail.setBounds(10, 175, 60, 14);
		jPClienteNUEVO.add(lblClienteNEmail);
		
		JLabel lblClienteNNuevo = new JLabel("Nuevo Cliente");
		lblClienteNNuevo.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblClienteNNuevo.setBounds(10, 10, 98, 14);
		jPClienteNUEVO.add(lblClienteNNuevo);
		
		jTFClienteNApellido = new JTextField();
		jTFClienteNApellido.setToolTipText("Apellido de cliente");
		jTFClienteNApellido.setBounds(75, 47, 180, 20);
		jPClienteNUEVO.add(jTFClienteNApellido);
		jTFClienteNApellido.setColumns(10);
		
		jTFClienteNNombre = new JTextField();
		jTFClienteNNombre.setToolTipText("Nombre de cliente");
		jTFClienteNNombre.setColumns(10);
		jTFClienteNNombre.setBounds(75, 72, 180, 20);
		jPClienteNUEVO.add(jTFClienteNNombre);
		
		jTFClienteNDireccion = new JTextField();
		jTFClienteNDireccion.setToolTipText("Direcci\u00F3n de cliente");
		jTFClienteNDireccion.setColumns(10);
		jTFClienteNDireccion.setBounds(75, 97, 180, 20);
		jPClienteNUEVO.add(jTFClienteNDireccion);
		
		jTFClienteNLocalidad = new JTextField();
		jTFClienteNLocalidad.setToolTipText("Localidad de cliente");
		jTFClienteNLocalidad.setColumns(10);
		jTFClienteNLocalidad.setBounds(75, 122, 180, 20);
		jPClienteNUEVO.add(jTFClienteNLocalidad);
		
		jTFClienteNTelefono = new JTextField();
		jTFClienteNTelefono.setToolTipText("Tel\u00E9fono de cliente");
		jTFClienteNTelefono.setColumns(10);
		jTFClienteNTelefono.setBounds(75, 147, 180, 20);
		jPClienteNUEVO.add(jTFClienteNTelefono);
		
		jTFClienteNEMail = new JTextField();
		jTFClienteNEMail.setToolTipText("E-Mail de cliente");
		jTFClienteNEMail.setColumns(10);
		jTFClienteNEMail.setBounds(75, 172, 180, 20);
		jPClienteNUEVO.add(jTFClienteNEMail);
		
		JButton btnClienteNNuevo = new JButton("Guardar");
		btnClienteNNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//llamar a guardar nuevo cliente
			}
		});
		btnClienteNNuevo.setBounds(80, 200, 85, 20);
		jPClienteNUEVO.add(btnClienteNNuevo);
		
		JButton btnClienteNCancelar = new JButton("Cancelar");
		btnClienteNCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//llamar a cancelar nuevo cliente.				
			}
		});
		btnClienteNCancelar.setBounds(170, 200, 85, 20);
		jPClienteNUEVO.add(btnClienteNCancelar);

/*Cliente: Listar*/
		JPanel jPClienteLISTAR = new JPanel();
		jPClienteLISTAR.setToolTipText("Listar Cliente");
		jTPaneCliente.addTab("Listar", null, jPClienteLISTAR, null);
		jPClienteLISTAR.setLayout(null);
		
		JLabel lblClienteLListar = new JLabel("Listado de Clientes");
		lblClienteLListar.setBounds(10, 10, 144, 17);
		jPClienteLISTAR.add(lblClienteLListar);
		lblClienteLListar.setFont(new Font("Tahoma", Font.BOLD, 14));
		
		JScrollPane jCPClienteListar = new JScrollPane();
		jCPClienteListar.setToolTipText("Listado de Clientes");
		jCPClienteListar.setBounds(10, 35, 505, 315);
		jPClienteLISTAR.add(jCPClienteListar);
		
		jTClienteLista = new JTable();
		jTClienteLista.setFillsViewportHeight(true);
		jCPClienteListar.setViewportView(jTClienteLista);
		jTClienteLista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	
		jTFClienteListarFiltro = new JTextField();
		jTFClienteListarFiltro.setToolTipText("Filtrar por palabra");
		jTFClienteListarFiltro.setBounds(338, 356, 177, 20);
		jPClienteLISTAR.add(jTFClienteListarFiltro);
		jTFClienteListarFiltro.setColumns(10);

		JButton btnClienteListarReporte = new JButton("Reporte");
		btnClienteListarReporte.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				GenerarReporteClienteListar();
			}
		});
		btnClienteListarReporte.setToolTipText("Reporte de cuenta de cliente");
		btnClienteListarReporte.setBounds(10, 356, 85, 20);
		jPClienteLISTAR.add(btnClienteListarReporte);
		

/*Cliente: Editar*/
		JPanel JPClienteEDITAR = new JPanel();
		JPClienteEDITAR.setToolTipText("Editar Cliente");
		jTPaneCliente.addTab("Editar", null, JPClienteEDITAR, null);
		JPClienteEDITAR.setLayout(null);
		
		JLabel lblClienteEApellido = new JLabel("Apellido");
		lblClienteEApellido.setBounds(10, 70, 60, 14);
		JPClienteEDITAR.add(lblClienteEApellido);
		
		JLabel lblClienteENombre = new JLabel("Nombre");
		lblClienteENombre.setBounds(10, 95, 60, 14);
		JPClienteEDITAR.add(lblClienteENombre);
		
		JLabel lblClienteEDireccion = new JLabel("Direcci\u00F3n");
		lblClienteEDireccion.setBounds(10, 121, 60, 14);
		JPClienteEDITAR.add(lblClienteEDireccion);
		
		JLabel lblClienteELocalidad = new JLabel("Localidad");
		lblClienteELocalidad.setBounds(10, 145, 60, 14);
		JPClienteEDITAR.add(lblClienteELocalidad);
		
		JLabel lblClienteETelefono = new JLabel("Tel\u00E9fono");
		lblClienteETelefono.setBounds(10, 170, 60, 14);
		JPClienteEDITAR.add(lblClienteETelefono);
		
		JLabel lblClienteEEMail = new JLabel("E-mail");
		lblClienteEEMail.setBounds(10, 195, 60, 14);
		JPClienteEDITAR.add(lblClienteEEMail);
		
		JLabel lblClienteEEditar = new JLabel("Editar Cliente");
		lblClienteEEditar.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblClienteEEditar.setBounds(10, 10, 98, 14);
		JPClienteEDITAR.add(lblClienteEEditar);
		
		jTFClienteEApellido = new JTextField();
		jTFClienteEApellido.setToolTipText("Apellido de cliente");
		jTFClienteEApellido.setColumns(10);
		jTFClienteEApellido.setBounds(75, 65, 180, 20);
		JPClienteEDITAR.add(jTFClienteEApellido);
		
		jTFClienteENombre = new JTextField();
		jTFClienteENombre.setToolTipText("Nombre de cliente");
		jTFClienteENombre.setColumns(10);
		jTFClienteENombre.setBounds(75, 90, 180, 20);
		JPClienteEDITAR.add(jTFClienteENombre);
		
		jTFClienteEDireccion = new JTextField();
		jTFClienteEDireccion.setToolTipText("Direcci\u00F3n de cliente");
		jTFClienteEDireccion.setColumns(10);
		jTFClienteEDireccion.setBounds(75, 115, 180, 20);
		JPClienteEDITAR.add(jTFClienteEDireccion);
		
		jTFClienteELocalidad = new JTextField();
		jTFClienteELocalidad.setToolTipText("Localidad de cliente");
		jTFClienteELocalidad.setColumns(10);
		jTFClienteELocalidad.setBounds(75, 140, 180, 20);
		JPClienteEDITAR.add(jTFClienteELocalidad);
		
		jTFClienteETelefono = new JTextField();
		jTFClienteETelefono.setToolTipText("Tel\u00E9fono de cliente");
		jTFClienteETelefono.setColumns(10);
		jTFClienteETelefono.setBounds(75, 165, 180, 20);
		JPClienteEDITAR.add(jTFClienteETelefono);
		
		jTFClienteEEMail = new JTextField();
		jTFClienteEEMail.setToolTipText("E-Mail de cliente");
		jTFClienteEEMail.setColumns(10);
		jTFClienteEEMail.setBounds(75, 190, 180, 20);
		JPClienteEDITAR.add(jTFClienteEEMail);
		
		JButton btnClienteEGuardar = new JButton("Guardar");
		btnClienteEGuardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//guardar datos de cliente editado.				
			}
		});
		btnClienteEGuardar.setBounds(80, 220, 85, 20);
		JPClienteEDITAR.add(btnClienteEGuardar);
		
		JButton btnClienteECancelar = new JButton("Cancelar");
		btnClienteECancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//cancelar edicion de datos de cliente.				
			}
		});
		btnClienteECancelar.setBounds(170, 220, 85, 20);
		JPClienteEDITAR.add(btnClienteECancelar);
		
		JButton btnClienteEBuscar = new JButton("Buscar");
		btnClienteEBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//buscar cliente segun datos ingresados en "jTFClienteEBuscar".	
				buscarCliente();
			}
		});
		btnClienteEBuscar.setBounds(170, 35, 85, 20);
		JPClienteEDITAR.add(btnClienteEBuscar);
		
		jTFClienteEBuscar = new JTextField();
		jTFClienteEBuscar.setToolTipText("Ingrese texto para la busqueda");
		jTFClienteEBuscar.setBounds(10, 35, 140, 20);
		JPClienteEDITAR.add(jTFClienteEBuscar);
		jTFClienteEBuscar.setColumns(10);

		

/** * FIN CARGA DATOS FORMATOS DE PANEL CLIENTE * */		

/** * EMPIEZO A CARGAR DATOS FORMATOS DE PANEL VEHICULO * */
		
		jTPaneVehiculo.setBounds(126, 48, 530, 415);
/** Solo habilitar a modo de edicinn*/
//		cPanePrincipal.add(jTPaneVehiculo);
		
/*Vehiculo: Nuevo Vehiculo*/
		JPanel jPVehiculoNUEVO = new JPanel();
		jPVehiculoNUEVO.setToolTipText("Nuevo Vehiculo");
		jTPaneVehiculo.addTab("Nuevo", null, jPVehiculoNUEVO, null);
		jPVehiculoNUEVO.setLayout(null);
		
		JLabel lblVehiculoNApellido = new JLabel("Marca");
		lblVehiculoNApellido.setBounds(10, 50, 60, 14);
		jPVehiculoNUEVO.add(lblVehiculoNApellido);
		
		JLabel lblVehiculoNNombre = new JLabel("Modelo");
		lblVehiculoNNombre.setBounds(10, 75, 60, 14);
		jPVehiculoNUEVO.add(lblVehiculoNNombre);
		
		JLabel lblVehiculoNPatente = new JLabel("Patente");
		lblVehiculoNPatente.setBounds(10, 100, 60, 14);
		jPVehiculoNUEVO.add(lblVehiculoNPatente);
		
		JLabel lblVehiculoNColor = new JLabel("Color");
		lblVehiculoNColor.setBounds(10, 125, 60, 14);
		jPVehiculoNUEVO.add(lblVehiculoNColor);
		
		JLabel lblVehiculoNAno = new JLabel("Ano");
		lblVehiculoNAno.setBounds(10, 150, 60, 14);
		jPVehiculoNUEVO.add(lblVehiculoNAno);
		
		JLabel lblVehiculoNNuevo = new JLabel("Nuevo Vehiculo");
		lblVehiculoNNuevo.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblVehiculoNNuevo.setBounds(10, 10, 120, 14);
		jPVehiculoNUEVO.add(lblVehiculoNNuevo);
		
		jTFVehiculoNMarca = new JTextField();
		jTFVehiculoNMarca.setToolTipText("Marca de Vehiculo");
		jTFVehiculoNMarca.setBounds(75, 47, 180, 20);
		jPVehiculoNUEVO.add(jTFVehiculoNMarca);
		jTFVehiculoNMarca.setColumns(10);
		
		jTFVehiculoNModelo = new JTextField();
		jTFVehiculoNModelo.setToolTipText("Modelo de Vehiculo");
		jTFVehiculoNModelo.setColumns(10);
		jTFVehiculoNModelo.setBounds(75, 72, 180, 20);
		jPVehiculoNUEVO.add(jTFVehiculoNModelo);
		
		jTFVehiculoNPatente = new JTextField();
		jTFVehiculoNPatente.setToolTipText("Patente de Vehiculo");
		jTFVehiculoNPatente.setColumns(10);
		jTFVehiculoNPatente.setBounds(75, 97, 180, 20);
		jPVehiculoNUEVO.add(jTFVehiculoNPatente);
		
		jTFVehiculoNColor = new JTextField();
		jTFVehiculoNColor.setToolTipText("Color de Vehiculo");
		jTFVehiculoNColor.setColumns(10);
		jTFVehiculoNColor.setBounds(75, 122, 180, 20);
		jPVehiculoNUEVO.add(jTFVehiculoNColor);
		
		jTFVehiculoNAno = new JTextField();
		jTFVehiculoNAno.setToolTipText("Ano de Vehiculo");
		jTFVehiculoNAno.setColumns(10);
		jTFVehiculoNAno.setBounds(75, 147, 180, 20);
		jPVehiculoNUEVO.add(jTFVehiculoNAno);
		
		JButton btnVehiculoNNuevo = new JButton("Guardar");
		btnVehiculoNNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//guardar nuevo vehiculo.				
			}
		});
		btnVehiculoNNuevo.setBounds(80, 200, 85, 20);
		jPVehiculoNUEVO.add(btnVehiculoNNuevo);
		
		JButton btnVehiculoNCancelar = new JButton("Cancelar");
		btnVehiculoNCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//cancelar nuevo vehiculo.				
			}
		});
		btnVehiculoNCancelar.setBounds(170, 200, 85, 20);
		jPVehiculoNUEVO.add(btnVehiculoNCancelar);
		
/*Vehiculo: Listar Vehiculo*/
		JPanel jPVehiculoLISTAR = new JPanel();
		jPVehiculoLISTAR.setToolTipText("Listar Vehiculo");
		jTPaneVehiculo.addTab("Listar", null, jPVehiculoLISTAR, null);
		jPVehiculoLISTAR.setLayout(null);
		
		JLabel lblVehiculoLListar = new JLabel("Listado de Vehiculos");
		lblVehiculoLListar.setBounds(10, 10, 144, 17);
		jPVehiculoLISTAR.add(lblVehiculoLListar);
		lblVehiculoLListar.setFont(new Font("Tahoma", Font.BOLD, 14));
		
		JScrollPane jCPVehiculoListar = new JScrollPane();
		jCPVehiculoListar.setToolTipText("Listado de Vehiculos");
		jCPVehiculoListar.setBounds(10, 35, 505, 315);
		jPVehiculoLISTAR.add(jCPVehiculoListar);
		
		jTVehiculoLista = new JTable();
		jTVehiculoLista.setFillsViewportHeight(true);
		jCPVehiculoListar.setViewportView(jTVehiculoLista);
		jTVehiculoLista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		
// Cargo la tabla de editar		
//		initTablaListarVehiculo();
		
		jTVehiculoLista.setToolTipText("Lista de Vehiculos");
//		jTVehiculoLista.setColumnSelectionAllowed(true);
//		jTVehiculoLista.setCellSelectionEnabled(true);
		
		jTFVehiculoListarFiltro = new JTextField();
		jTFVehiculoListarFiltro.setToolTipText("Filtrar por palabra");
		jTFVehiculoListarFiltro.setBounds(338, 356, 177, 20);
		jPVehiculoLISTAR.add(jTFVehiculoListarFiltro);
		jTFVehiculoListarFiltro.setColumns(10);
		
		JButton btnVehiculoLGeneraReporte = new JButton("Reporte");
		btnVehiculoLGeneraReporte.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				GenerarReporteVehiculo();
			}
		});
		btnVehiculoLGeneraReporte.setToolTipText("Generar reporte de Vehiculos seleccionados");
		btnVehiculoLGeneraReporte.setBounds(10, 356, 85, 20);
		jPVehiculoLISTAR.add(btnVehiculoLGeneraReporte);
		
/*Vehiculo: Editar Vehiculo*/		
		JPanel JPVehiculoEDITAR = new JPanel();
		JPVehiculoEDITAR.setToolTipText("Editar Vehnculo");
		jTPaneVehiculo.addTab("Editar", null, JPVehiculoEDITAR, null);
		JPVehiculoEDITAR.setLayout(null);
		
		JLabel lblVehiculoEMarca = new JLabel("Marca");
		lblVehiculoEMarca.setBounds(10, 70, 60, 14);
		JPVehiculoEDITAR.add(lblVehiculoEMarca);
		
		JLabel lblVehiculoEModelo = new JLabel("Modelo");
		lblVehiculoEModelo.setBounds(10, 95, 60, 14);
		JPVehiculoEDITAR.add(lblVehiculoEModelo);
		
		JLabel lblVehiculoEPatente = new JLabel("Patente");
		lblVehiculoEPatente.setBounds(10, 121, 60, 14);
		JPVehiculoEDITAR.add(lblVehiculoEPatente);
		
		JLabel lblVehiculoEColor = new JLabel("Color");
		lblVehiculoEColor.setBounds(10, 145, 60, 14);
		JPVehiculoEDITAR.add(lblVehiculoEColor);
		
		JLabel lblVehiculoEAno = new JLabel("Ano");
		lblVehiculoEAno.setBounds(10, 170, 60, 14);
		JPVehiculoEDITAR.add(lblVehiculoEAno);
		
		JLabel lblVehiculoEEditar = new JLabel("Editar Vehiculo");
		lblVehiculoEEditar.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblVehiculoEEditar.setBounds(10, 10, 140, 14);
		JPVehiculoEDITAR.add(lblVehiculoEEditar);
		
		jTFVehiculoEMarca = new JTextField();
		jTFVehiculoEMarca.setToolTipText("Marca del Vehiculo");
		jTFVehiculoEMarca.setColumns(10);
		jTFVehiculoEMarca.setBounds(75, 65, 180, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEMarca);
		
		jTFVehiculoEModelo = new JTextField();
		jTFVehiculoEModelo.setToolTipText("Modelo del Vehiculo");
		jTFVehiculoEModelo.setColumns(10);
		jTFVehiculoEModelo.setBounds(75, 90, 180, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEModelo);
		
		jTFVehiculoEPatente = new JTextField();
		jTFVehiculoEPatente.setToolTipText("Patente del Vehiculo");
		jTFVehiculoEPatente.setColumns(10);
		jTFVehiculoEPatente.setBounds(75, 115, 180, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEPatente);
		
		jTFVehiculoEColor = new JTextField();
		jTFVehiculoEColor.setToolTipText("Color del Vehiculo");
		jTFVehiculoEColor.setColumns(10);
		jTFVehiculoEColor.setBounds(75, 140, 180, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEColor);
		
		jTFVehiculoEAno = new JTextField();
		jTFVehiculoEAno.setToolTipText("Ano del Vehiculo");
		jTFVehiculoEAno.setColumns(10);
		jTFVehiculoEAno.setBounds(75, 165, 180, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEAno);
		
		JButton btnVehiculoEGuardar = new JButton("Guardar");
		btnVehiculoEGuardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//guardar datos editados de vehiculo.				
			}
		});
		btnVehiculoEGuardar.setBounds(80, 220, 85, 20);
		JPVehiculoEDITAR.add(btnVehiculoEGuardar);
		
		JButton btnVehiculoECancelar = new JButton("Cancelar");
		btnVehiculoECancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//cancelar edicion de datos de vehiculo.			
			}
		});
		btnVehiculoECancelar.setBounds(170, 220, 85, 20);
		JPVehiculoEDITAR.add(btnVehiculoECancelar);
		
		JButton btnVehiculoEBuscar = new JButton("Buscar");
		btnVehiculoEBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
//buscar vehiculo segun datos ingresados en "jTFVehiculoEBuscar".				
			}
		});
		btnVehiculoEBuscar.setBounds(170, 35, 85, 20);
		JPVehiculoEDITAR.add(btnVehiculoEBuscar);
		
		jTFVehiculoEBuscar = new JTextField();
		jTFVehiculoEBuscar.setToolTipText("Ingrese texto para la busqueda");
		jTFVehiculoEBuscar.setBounds(10, 35, 140, 20);
		JPVehiculoEDITAR.add(jTFVehiculoEBuscar);
		jTFVehiculoEBuscar.setColumns(10);
	

/** * FIN CARGA DATOS FORMATOS DE PANEL VEHICULO * */
		
/** * EMPIEZO A CARGAR DATOS FORMATOS DE PANEL PRESUPUESTO * */
			
		jTPanePresupuesto.setBounds(126, 48, 530, 415);

/*Presupuesto: Nuevo Presupuesto*/		
		JPanel JPPresupuestoNuevo = new JPanel();
		JPPresupuestoNuevo.setToolTipText("");
		jTPanePresupuesto.addTab("Nuevo", null, JPPresupuestoNuevo, null);
		JPPresupuestoNuevo.setLayout(null);
		
		JLabel lblPresupuestoNuevo = new JLabel("Nuevo Presupuesto");
		lblPresupuestoNuevo.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblPresupuestoNuevo.setBounds(10, 10, 140, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNuevo);
		
		JButton btnPresupuestoNGuardar = new JButton("Guardar");
		btnPresupuestoNGuardar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//guardar el nuevo presupuesto.			
			}
		});
		btnPresupuestoNGuardar.setBounds(340, 359, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNGuardar);
		
		JButton btnPresupuestoNCancelar1 = new JButton("Cancelar");
		btnPresupuestoNCancelar1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//cancelar el nuevo presupuesto.			
			}
		});
		btnPresupuestoNCancelar1.setBounds(430, 359, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNCancelar1);
		
		JLabel lblPresupuestoNApellido = new JLabel("Apellido");
		lblPresupuestoNApellido.setBounds(10, 60, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNApellido);
		
		JLabel lblPresupuestoNCliente = new JLabel("Cliente");
		lblPresupuestoNCliente.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblPresupuestoNCliente.setBounds(10, 35, 70, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNCliente);
		
		JSeparator sepPresupuestoVertical1 = new JSeparator();
		sepPresupuestoVertical1.setBounds(10, 52, 505, 8);
		JPPresupuestoNuevo.add(sepPresupuestoVertical1);
		
		JLabel lblPresupuestoNNombre = new JLabel("Nombre");
		lblPresupuestoNNombre.setBounds(10, 85, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNNombre);
		
		jTFPresupuestoNApellido = new JTextField();
		jTFPresupuestoNApellido.setBounds(65, 57, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNApellido);
		jTFPresupuestoNApellido.setColumns(10);
		
		jTFPresupuestoNNombre = new JTextField();
		jTFPresupuestoNNombre.setColumns(10);
		jTFPresupuestoNNombre.setBounds(65, 82, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNNombre);
		
		JLabel lblPresupuestoNDireccion = new JLabel("Direcci\u00F3n");
		lblPresupuestoNDireccion.setBounds(164, 60, 60, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNDireccion);
		
		JLabel lblPresupuestoNLocalidad = new JLabel("Localidad");
		lblPresupuestoNLocalidad.setBounds(164, 85, 60, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNLocalidad);
		
		jTFPresupuestoNLocalidad = new JTextField();
		jTFPresupuestoNLocalidad.setColumns(10);
		jTFPresupuestoNLocalidad.setBounds(230, 82, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNLocalidad);
		
		jTFPresupuestoNDireccion = new JTextField();
		jTFPresupuestoNDireccion.setColumns(10);
		jTFPresupuestoNDireccion.setBounds(230, 57, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNDireccion);
		
		JLabel lblPresupuestoNTel = new JLabel("Tel\u00E9fono");
		lblPresupuestoNTel.setBounds(330, 60, 60, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNTel);
		
		JLabel lblPresupuestoNEMail = new JLabel("E-Mail");
		lblPresupuestoNEMail.setBounds(330, 85, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNEMail);
		
		jTFPresupuestoNMail = new JTextField();
		jTFPresupuestoNMail.setColumns(10);
		jTFPresupuestoNMail.setBounds(404, 82, 110, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNMail);
		
		jTFPresupuestoNTel = new JTextField();
		jTFPresupuestoNTel.setColumns(10);
		jTFPresupuestoNTel.setBounds(404, 57, 110, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNTel);
		
		JLabel lblPresupuestoNVehiculo = new JLabel("Veh\u00EDculo");
		lblPresupuestoNVehiculo.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblPresupuestoNVehiculo.setBounds(10, 132, 70, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNVehiculo);
		
		JSeparator sepPresupuestoVertical2 = new JSeparator();
		sepPresupuestoVertical2.setBounds(10, 150, 505, 8);
		JPPresupuestoNuevo.add(sepPresupuestoVertical2);
		
		JButton btnPresupuestoNBuscCliente = new JButton("Buscar");
		btnPresupuestoNBuscCliente.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//buscar cliente
			}
		});
		btnPresupuestoNBuscCliente.setToolTipText("Buscar cliente");
		btnPresupuestoNBuscCliente.setBounds(340, 113, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNBuscCliente);
		
		JButton btnPresupuestoNNuevCliente = new JButton("Nuevo");
		btnPresupuestoNNuevCliente.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//nuevo cliente
			}
		});
		btnPresupuestoNNuevCliente.setToolTipText("Nuevo cliente");
		btnPresupuestoNNuevCliente.setBounds(430, 113, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNNuevCliente);
		
		JLabel lblPresupuestoNMarca = new JLabel("Marca");
		lblPresupuestoNMarca.setBounds(10, 169, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNMarca);
		
		JLabel lblPresupuestoNModelo = new JLabel("Modelo");
		lblPresupuestoNModelo.setBounds(10, 194, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNModelo);
		
		jTFPresupuestoNModelo = new JTextField();
		jTFPresupuestoNModelo.setColumns(10);
		jTFPresupuestoNModelo.setBounds(65, 191, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNModelo);
		
		jTFPresupuestoNMarca = new JTextField();
		jTFPresupuestoNMarca.setColumns(10);
		jTFPresupuestoNMarca.setBounds(65, 166, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNMarca);
		
		JLabel lblPresupuestoNPatente = new JLabel("Patente");
		lblPresupuestoNPatente.setBounds(164, 169, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNPatente);
		
		JLabel lblPresupuestoNColor = new JLabel("Color");
		lblPresupuestoNColor.setBounds(164, 194, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNColor);
		
		jTFPresupuestoNColor = new JTextField();
		jTFPresupuestoNColor.setColumns(10);
		jTFPresupuestoNColor.setBounds(219, 191, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNColor);
		
		JSeparator separator_3 = new JSeparator();
		separator_3.setBounds(10, 26, 505, 8);
		JPPresupuestoNuevo.add(separator_3);

		jTFPresupuestoNPatente = new JTextField();
		jTFPresupuestoNPatente.setColumns(10);
		jTFPresupuestoNPatente.setBounds(219, 166, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNPatente);
		
		JLabel lblPresupuestoNAno = new JLabel("A\u00F1o");
		lblPresupuestoNAno.setBounds(348, 169, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNAno);
		
		jTFPresupuestoNAno = new JTextField();
		jTFPresupuestoNAno.setColumns(10);
		jTFPresupuestoNAno.setBounds(404, 166, 110, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNAno);
	
		JButton btnPresupuestoNBuscVehiculo = new JButton("Buscar");
		btnPresupuestoNBuscVehiculo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//buscar vehiculo
			}
		});
		btnPresupuestoNBuscVehiculo.setToolTipText("Buscar veh\u00EDculo");
		btnPresupuestoNBuscVehiculo.setBounds(340, 222, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNBuscVehiculo);
		
		JButton btnPresupuestoNNuevVehiculo = new JButton("Nuevo");
		btnPresupuestoNNuevVehiculo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
//nuevo vehiculo
			}
		});
		btnPresupuestoNNuevVehiculo.setToolTipText("Nuevo veh\u00EDculo");
		btnPresupuestoNNuevVehiculo.setBounds(430, 222, 85, 20);
		JPPresupuestoNuevo.add(btnPresupuestoNNuevVehiculo);
	
		JSeparator sepPresupuestoVertical3 = new JSeparator();
		sepPresupuestoVertical3.setBounds(10, 258, 505, 8);
		JPPresupuestoNuevo.add(sepPresupuestoVertical3);
		
		JLabel lblPresupuestoNPresupuesto = new JLabel("Presupuesto");
		lblPresupuestoNPresupuesto.setFont(new Font("Tahoma", Font.BOLD, 14));
		lblPresupuestoNPresupuesto.setBounds(10, 240, 140, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNPresupuesto);
		
		JLabel lblPresupuestoNCosto = new JLabel("Costo");
		lblPresupuestoNCosto.setBounds(10, 331, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNCosto);
		
		jTFPresupuestoNCosto = new JTextField();
		jTFPresupuestoNCosto.setToolTipText("Valor del trabajo");
		jTFPresupuestoNCosto.setColumns(10);
		jTFPresupuestoNCosto.setBounds(55, 328, 70, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNCosto);
	
		JLabel lblPresupuestoNTpoEstimado = new JLabel("Tiempo estimado");
		lblPresupuestoNTpoEstimado.setBounds(135, 331, 110, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNTpoEstimado);
		
		jTFPresupuestoNTpoEstimado = new JTextField();
		jTFPresupuestoNTpoEstimado.setToolTipText("Tiempo estimado para realizar el trabajo");
		jTFPresupuestoNTpoEstimado.setColumns(10);
		jTFPresupuestoNTpoEstimado.setBounds(237, 328, 86, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNTpoEstimado);
		
		JLabel lblPresupuestoNVlidoHasta = new JLabel("V\u00E1lido hasta");
		lblPresupuestoNVlidoHasta.setBounds(335, 331, 70, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNVlidoHasta);
	
		jTFPresupuestoNValidoH = new JTextField();
		jTFPresupuestoNValidoH.setToolTipText("Validez del presupuesto");
		jTFPresupuestoNValidoH.setColumns(10);
		jTFPresupuestoNValidoH.setBounds(414, 328, 93, 20);
		JPPresupuestoNuevo.add(jTFPresupuestoNValidoH);
	
		JLabel lblPresupuestoNTrabajo = new JLabel("Trabajo");
		lblPresupuestoNTrabajo.setBounds(10, 265, 46, 14);
		JPPresupuestoNuevo.add(lblPresupuestoNTrabajo);
	
		JScrollPane scPPresupuestoNTrabajo = new JScrollPane();
		scPPresupuestoNTrabajo.setToolTipText("Trabajo presupuestado");
		scPPresupuestoNTrabajo.setBounds(55, 265, 453, 52);
		JPPresupuestoNuevo.add(scPPresupuestoNTrabajo);
		
		JTextArea jTAPresupuestoNTrabajo = new JTextArea();
		jTAPresupuestoNTrabajo.setToolTipText("Trabajo presupuestado");
		scPPresupuestoNTrabajo.setViewportView(jTAPresupuestoNTrabajo);
		
/*Presupuesto: Nuevo Presupuesto FIN*/	
			
/*Presupuesto: Listar Presupuesto*/
			JPanel jPPresupuestoLISTAR = new JPanel();
			jPPresupuestoLISTAR.setToolTipText("Listar Presupuesto");
			jTPanePresupuesto.addTab("Listar", null, jPPresupuestoLISTAR, null);
			jPPresupuestoLISTAR.setLayout(null);
			
			JLabel lblPresupuestoLListar = new JLabel("Listado de Presupuestos");
			lblPresupuestoLListar.setBounds(10, 10, 180, 17);
			jPPresupuestoLISTAR.add(lblPresupuestoLListar);
			lblPresupuestoLListar.setFont(new Font("Tahoma", Font.BOLD, 14));
			
			JScrollPane jCPPresupuestoListar = new JScrollPane();
			jCPPresupuestoListar.setToolTipText("Listado de Presupuestos");
			jCPPresupuestoListar.setBounds(10, 35, 505, 315);
			jPPresupuestoLISTAR.add(jCPPresupuestoListar);
			
			jTPresupuestoLista = new JTable();
			jTPresupuestoLista.setFillsViewportHeight(true);
			jCPPresupuestoListar.setViewportView(jTPresupuestoLista);
			jTPresupuestoLista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Cargo la tabla de editar		
//			this.initTablaListarPresupuesto();
	
			jTPresupuestoLista.setToolTipText("Lista de Presupuestos");
//			jTPresupuestoLista.setColumnSelectionAllowed(true);
//			jTPresupuestoLista.setCellSelectionEnabled(true);
			
			jTFPresupuestoListarFiltro = new JTextField();
			jTFPresupuestoListarFiltro.setToolTipText("Filtrar por palabra");
			jTFPresupuestoListarFiltro.setBounds(338, 356, 177, 20);
			jPPresupuestoLISTAR.add(jTFPresupuestoListarFiltro);
			jTFPresupuestoListarFiltro.setColumns(10);
			
			JButton btnPresupuestoLGeneraReporte = new JButton("Reporte");
			btnPresupuestoLGeneraReporte.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
//					GenerarReportePresupuesto();
				}
			});
			btnPresupuestoLGeneraReporte.setToolTipText("Generar reporte de Presupuestos seleccionados");
			btnPresupuestoLGeneraReporte.setBounds(10, 356, 85, 20);
			jPPresupuestoLISTAR.add(btnPresupuestoLGeneraReporte);
			
			JSeparator separator_2 = new JSeparator();
			separator_2.setBounds(10, 26, 505, 8);
			jPPresupuestoLISTAR.add(separator_2);
			
			
/*Presupuesto: Listar Presupuesto FIN*/				
/*Presupuesto: Editar Presupuesto*/		
			
			JPanel JPPresupuestoEDITAR = new JPanel();
			JPPresupuestoEDITAR.setToolTipText("Editar Presupuesto");
			jTPanePresupuesto.addTab("Editar", null, JPPresupuestoEDITAR, null);
			JPPresupuestoEDITAR.setLayout(null);
			
			JLabel lblPresupuestoEApellido = new JLabel("Marca");
			lblPresupuestoEApellido.setBounds(10, 78, 60, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoEApellido);
			
			JLabel lblPresupuestoENombre = new JLabel("Modelo");
			lblPresupuestoENombre.setBounds(10, 103, 60, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoENombre);
			
			JLabel lblPresupuestoEDireccion = new JLabel("Patente");
			lblPresupuestoEDireccion.setBounds(10, 128, 60, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoEDireccion);
			
			JLabel lblPresupuestoELocalidad = new JLabel("Color");
			lblPresupuestoELocalidad.setBounds(10, 153, 60, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoELocalidad);
			
			JLabel lblPresupuestoETelefono = new JLabel("Ano");
			lblPresupuestoETelefono.setBounds(10, 178, 60, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoETelefono);
			
			JLabel lblPresupuestoEEditar = new JLabel("Editar Presupuesto");
			lblPresupuestoEEditar.setFont(new Font("Tahoma", Font.BOLD, 14));
			lblPresupuestoEEditar.setBounds(10, 10, 150, 14);
			JPPresupuestoEDITAR.add(lblPresupuestoEEditar);
			
			jTFPresupuestoEMarca = new JTextField();
			jTFPresupuestoEMarca.setToolTipText("Marca de Presupuesto");
			jTFPresupuestoEMarca.setColumns(10);
			jTFPresupuestoEMarca.setBounds(75, 75, 180, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEMarca);
			
			jTFPresupuestoEModelo = new JTextField();
			jTFPresupuestoEModelo.setToolTipText("Modelo de Presupuesto");
			jTFPresupuestoEModelo.setColumns(10);
			jTFPresupuestoEModelo.setBounds(75, 100, 180, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEModelo);
			
			jTFPresupuestoEPatente = new JTextField();
			jTFPresupuestoEPatente.setToolTipText("Patente de Presupuesto");
			jTFPresupuestoEPatente.setColumns(10);
			jTFPresupuestoEPatente.setBounds(75, 125, 180, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEPatente);
			
			jTFPresupuestoEColor = new JTextField();
			jTFPresupuestoEColor.setToolTipText("Color de Presupuesto");
			jTFPresupuestoEColor.setColumns(10);
			jTFPresupuestoEColor.setBounds(75, 150, 180, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEColor);
			
			jTFPresupuestoEAno = new JTextField();
			jTFPresupuestoEAno.setToolTipText("Ano de Presupuesto");
			jTFPresupuestoEAno.setColumns(10);
			jTFPresupuestoEAno.setBounds(75, 175, 180, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEAno);
			
			JButton btnPresupuestoEGuardar = new JButton("Guardar");
			btnPresupuestoEGuardar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
//guardar Presupuesto editado.
				}
			});
			btnPresupuestoEGuardar.setBounds(80, 215, 85, 20);
			JPPresupuestoEDITAR.add(btnPresupuestoEGuardar);
			
			JButton btnPresupuestoECancelar = new JButton("Cancelar");
			btnPresupuestoECancelar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//desacer presupuesto editado.
				}
			});
			btnPresupuestoECancelar.setBounds(170, 215, 85, 20);
			JPPresupuestoEDITAR.add(btnPresupuestoECancelar);
			
			JButton btnPresupuestoEBuscar = new JButton("Buscar");
			btnPresupuestoEBuscar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//buscar un presupuesto para editar, segun texto ingresado.
				}
			});
			btnPresupuestoEBuscar.setBounds(140, 35, 85, 20);
			JPPresupuestoEDITAR.add(btnPresupuestoEBuscar);
			
			jTFPresupuestoEFiltroBuscar = new JTextField();
			jTFPresupuestoEFiltroBuscar.setBounds(10, 35, 120, 20);
			JPPresupuestoEDITAR.add(jTFPresupuestoEFiltroBuscar);
			jTFPresupuestoEFiltroBuscar.setColumns(10);
			
			JSeparator separator_1 = new JSeparator();
			separator_1.setBounds(10, 26, 505, 8);
			JPPresupuestoEDITAR.add(separator_1);
			
/*Presupuesto: Cuentas Corrientes*/
			JPanel JPPresupuestoCC = new JPanel();
			JPPresupuestoCC.setToolTipText("");
			jTPanePresupuesto.addTab("Cuentas Corrientes", null, JPPresupuestoCC, null);
			JPPresupuestoCC.setLayout(null);
			
			JLabel lblPresupuestoCCEditar = new JLabel("Cuentas Corrientes");
			lblPresupuestoCCEditar.setFont(new Font("Tahoma", Font.BOLD, 14));
			lblPresupuestoCCEditar.setBounds(10, 10, 150, 14);
			JPPresupuestoCC.add(lblPresupuestoCCEditar);
			
			JButton btnPresupuestoCCGuardar = new JButton("Guardar");
			btnPresupuestoCCGuardar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//guardar pago del trabajo realizado,
				}
			});
			btnPresupuestoCCGuardar.setToolTipText("Imprimir y guardar.");
			btnPresupuestoCCGuardar.setBounds(340, 359, 85, 20);
			JPPresupuestoCC.add(btnPresupuestoCCGuardar);
			
			JButton btnPresupuestoCCCancelar = new JButton("Cancelar");
			btnPresupuestoCCCancelar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//cancelar pago de trabajo.
				}
			});
			btnPresupuestoCCCancelar.setBounds(430, 359, 85, 20);
			JPPresupuestoCC.add(btnPresupuestoCCCancelar);
			
			JScrollPane jsPPresupuestoCCCancelar = new JScrollPane();
			jsPPresupuestoCCCancelar.setToolTipText("Plan de pago.");
			jsPPresupuestoCCCancelar.setBounds(10, 194, 505, 126);
			JPPresupuestoCC.add(jsPPresupuestoCCCancelar);
			
			jTPresupuestoCCCuotas = new JTable();
			jTPresupuestoCCCuotas.setFillsViewportHeight(true);
			jsPPresupuestoCCCancelar.setViewportView(jTPresupuestoCCCuotas);
			jTPresupuestoCCCuotas.setColumnSelectionAllowed(true);
			jTPresupuestoCCCuotas.setCellSelectionEnabled(true);
			jTPresupuestoCCCuotas.setToolTipText("Plan de pago.");
			jTPresupuestoCCCuotas.setModel(new DefaultTableModel(
				new Object[][] {
					{"Centis", "Luciano", "Corrientes 808", "234", null},
				},
				new String[] {
					"Cuota", "Vencimiento", "Pagado", "Importe", "Pagar"
				}
			) {
				Class[] columnTypes = new Class[] {
					String.class, String.class, String.class, String.class, Boolean.class
				};
				//esta clase permite visualizar el checkbox en la tabla
				public Class getColumnClass(int columnIndex) {return columnTypes[columnIndex];}
			   });
			jTPresupuestoCCCuotas.getColumnModel().getColumn(0).setPreferredWidth(70);
			jTPresupuestoCCCuotas.getColumnModel().getColumn(1).setPreferredWidth(70);
			jTPresupuestoCCCuotas.getColumnModel().getColumn(2).setPreferredWidth(110);
			jTPresupuestoCCCuotas.getColumnModel().getColumn(3).setCellRenderer(alinearCentro); //asigno alineacion centrada
			
			JButton btnPresupuestoCCBuscarPatente = new JButton("Buscar");
			btnPresupuestoCCBuscarPatente.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//buscar un presupuesto segun texto ingresado PATENTE/CLIENTE, indicado en el jcombobox.
				}
			});
			btnPresupuestoCCBuscarPatente.setToolTipText("Comenzar busqueda");
			btnPresupuestoCCBuscarPatente.setBounds(335, 45, 85, 22);
			JPPresupuestoCC.add(btnPresupuestoCCBuscarPatente);
			
			JComboBox cBoxPresupuestoCCCriterioBusqueda = new JComboBox();
			cBoxPresupuestoCCCriterioBusqueda.setModel(new DefaultComboBoxModel(new String[] {"Patente", "Apellido"}));
			cBoxPresupuestoCCCriterioBusqueda.setToolTipText("Buscar Presupuestos por");
			cBoxPresupuestoCCCriterioBusqueda.setBounds(80, 45, 96, 22);
			JPPresupuestoCC.add(cBoxPresupuestoCCCriterioBusqueda);
			
			JLabel lblPresupuestoCCBuecarPor = new JLabel("Buecar por");
			lblPresupuestoCCBuecarPor.setBounds(10, 50, 84, 14);
			JPPresupuestoCC.add(lblPresupuestoCCBuecarPor);
			
			lblPresupuestoCCFiltro = new JTextField();
			lblPresupuestoCCFiltro.setToolTipText("Ingrese texto para la busqueda");
			lblPresupuestoCCFiltro.setBounds(183, 45, 144, 22);
			JPPresupuestoCC.add(lblPresupuestoCCFiltro);
			lblPresupuestoCCFiltro.setColumns(10);
			
			jTFPresupuestoCCDueno = new JTextField();
			jTFPresupuestoCCDueno.setToolTipText("Apellido - Nombre - Direcci\u00F3n");
			jTFPresupuestoCCDueno.setBounds(80, 80, 247, 20);
			JPPresupuestoCC.add(jTFPresupuestoCCDueno);
			jTFPresupuestoCCDueno.setColumns(10);
			
			JLabel lblPresupuestoCCDueno = new JLabel("Due\u00F1o");
			lblPresupuestoCCDueno.setBounds(10, 85, 46, 14);
			JPPresupuestoCC.add(lblPresupuestoCCDueno);
			
			JLabel lblPresupuestoCCVehiculo = new JLabel("Veh\u00EDculo");
			lblPresupuestoCCVehiculo.setBounds(10, 110, 60, 14);
			JPPresupuestoCC.add(lblPresupuestoCCVehiculo);
			
			jTFPresupuestoCCVehiculo = new JTextField();
			jTFPresupuestoCCVehiculo.setToolTipText("Marca - Modelo");
			jTFPresupuestoCCVehiculo.setColumns(10);
			jTFPresupuestoCCVehiculo.setBounds(80, 105, 247, 20);
			JPPresupuestoCC.add(jTFPresupuestoCCVehiculo);
			
			JLabel jTFPresupuestoCCTrabajo = new JLabel("Trabajo");
			jTFPresupuestoCCTrabajo.setBounds(10, 135, 46, 14);
			JPPresupuestoCC.add(jTFPresupuestoCCTrabajo);
			
			JScrollPane jCPPresupuestoCCTrabajos = new JScrollPane();
			jCPPresupuestoCCTrabajos.setBounds(80, 135, 435, 50);
			JPPresupuestoCC.add(jCPPresupuestoCCTrabajos);
			
			JTextArea jTAPresupuestoCCTrabajos = new JTextArea();
			jTAPresupuestoCCTrabajos.setToolTipText("Trabajos realizados al veh\u00EDculo");
			jCPPresupuestoCCTrabajos.setViewportView(jTAPresupuestoCCTrabajos);
			
			jTFPresupuestoCCImporteAPagar = new JTextField();
			jTFPresupuestoCCImporteAPagar.setToolTipText("Total a pagar");
			jTFPresupuestoCCImporteAPagar.setBounds(341, 325, 72, 20);
			JPPresupuestoCC.add(jTFPresupuestoCCImporteAPagar);
			jTFPresupuestoCCImporteAPagar.setColumns(10);
			
			JLabel lblPresupuestoCCImporteAPagar = new JLabel("Total");
			lblPresupuestoCCImporteAPagar.setBounds(300, 330, 46, 14);
			JPPresupuestoCC.add(lblPresupuestoCCImporteAPagar);
			
			JButton btnPresupuestoCCBuscarPresupuesto = new JButton("Buscar");
			btnPresupuestoCCBuscarPresupuesto.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
//buscar un dueno del auto buscado si el auto ingresado no tiene dueno.
				}
			});
			btnPresupuestoCCBuscarPresupuesto.setToolTipText("Buscar due\u00F1o");
			btnPresupuestoCCBuscarPresupuesto.setBounds(335, 78, 85, 22);
			JPPresupuestoCC.add(btnPresupuestoCCBuscarPresupuesto);
			
			JSeparator separator = new JSeparator();
			separator.setBounds(10, 26, 505, 8);
			JPPresupuestoCC.add(separator);
	
/**habilitar el que quiero visualizar en el wuindowbuilder para editarlo.*/
			cPanePrincipal.add(jTPaneCliente); 
//			cPanePrincipal.add(jTPaneVehiculo);
//			cPanePrincipal.add(jTPanePresupuesto);
			
/**Cargo eventos de teclado..*/		
			this.eventoTeclado();
			this.autoFiltro();	
			this.listaObjetos();
}
	
/** * EMPIEZO A CARGAR DATOS FORMATOS DE PANEL PRESUPUESTO * */
	
/**Metodos de botones para intercambiar paneles segnn el boton que clickea el usuario*/
	
/*Carga panel Cliente*/
	public void escuchadorPANELCLIENTE (){
		getContentPane().remove(jTPaneVehiculo); //quito el jTaddePaneVehiculo
        getContentPane().remove(jTPanePresupuesto); //quito el jTaddePanePresupuesto
        getContentPane().add(jTPaneCliente, java.awt.BorderLayout.CENTER);
        ((JComponent) getContentPane()).revalidate();
        getContentPane().repaint();
	}
/*Carga panel Vehiculo*/
	public void escuchadorPANELVEHICULO (){
		getContentPane().remove(jTPaneCliente); //quito el jTPaneCliente
        getContentPane().remove(jTPanePresupuesto); //quito el jTaddePanePresupuesto
        getContentPane().add(jTPaneVehiculo, java.awt.BorderLayout.CENTER);
        ((JComponent) getContentPane()).revalidate();
        getContentPane().repaint();
	}
/*Carga panel Presupuesto*/
	public void escuchadorPANELPRESUPUESTO (){
		getContentPane().remove(jTPaneVehiculo); //quito el jTaddePaneVehiculo
        getContentPane().remove(jTPaneCliente); //quito el jTPaneCliente
        getContentPane().add(jTPanePresupuesto, java.awt.BorderLayout.CENTER);
        ((JComponent) getContentPane()).revalidate();
        getContentPane().repaint();
	}
/*Generar reporte de Cuentas Corrientes seleccionados en panel CC CLIENTES.*/
	public void GenerarReporteClienteListar (){
		/*Falta completar este mntodo
		 * generar un documento pdf por cliente seleccionado y guardarlo en alguna
		 * carpeta por defecto.
		 * taller/reporte/clientes
		*/
	}	
/*Generar reporte de vehiculos seleccionados en panel LISTAR VEHICULOS.*/
	public void GenerarReporteVehiculo (){
		/*Falta completar este mntodo
		 * generar un documento pdf por vehiculo seleccionado y guardarlo en alguna
		 * carpeta por defecto.
		 * taller/reporte/vehiculos
		*/
	}
/*Generar reporte de Presupuesto seleccionados en panel PRESUPUESTO NUEVO.*/
	public void GenerarReportePresupuestoNuevo (){
		/*Falta completar este mntodo
		 * generar un documento pdf de presupuesto nuevo y guardarlo en la base y 
		 * carpeta de la pc (carpeta por defecto).
		 * Dentro del metoco preguntar si lo confirma ya de entrada al presupuesto o no.
		 * taller/reporte/presupuestos
		*/
	}
/*Generar reporte de Presupuesto seleccionados en panel PRESUPUESTO LISTAR Y CONFIRMAR.*/
	public void GenerarReportePresupuestoConfirmado (){
		/*Falta completar este mntodo
		 * generar un documento pdf (si es que no lo tiene creado) del presupuesto seleccionado
		 * y guardarlo en la carpeta por defecto.
		 * taller/reporte/presupuestos
		*/
	}
	
/**Seleccion de opciones de menu*/
/*Cliente: Nuevo*/
	public void menuClienteNuevo(){
		escuchadorPANELCLIENTE();
		jTPaneCliente.setSelectedIndex(0);
	}
/*Cliente: Listar*/
	public void menuClienteListar(){
		escuchadorPANELCLIENTE();
		jTPaneCliente.setSelectedIndex(1);
	}
/*Cliente: Editar*/
	public void menuClienteEditar(){
		escuchadorPANELCLIENTE();
		jTPaneCliente.setSelectedIndex(2);
	}
/*Vehiculo: Nuevo*/
	public void menuVehiculoNuevo(){
		escuchadorPANELVEHICULO();
		jTPaneVehiculo.setSelectedIndex(0);
	}
/*Vehiculo: Listar*/
	public void menuVehiculoListar(){
		escuchadorPANELVEHICULO();
		jTPaneVehiculo.setSelectedIndex(1);
	}
/*Vehiculo: Editar*/
	public void menuVehiculoEditar(){
		escuchadorPANELVEHICULO();
		jTPaneVehiculo.setSelectedIndex(2);
	}
/*Presupuesto: Nuevo*/
	public void menuPresupuestoNuevo(){
		escuchadorPANELPRESUPUESTO();
		jTPanePresupuesto.setSelectedIndex(0);
	}
/*Presupuesto: Listar*/
	public void menuPresupuestoListar(){
		escuchadorPANELPRESUPUESTO();
		jTPanePresupuesto.setSelectedIndex(1);
	}
/*Presupuesto: Editar*/
	public void menuPresupuestoEditar(){
		escuchadorPANELPRESUPUESTO();
		jTPanePresupuesto.setSelectedIndex(2);
	}
/*Presupuesto: Cuentas Corrientes*/
	public void menuPresupuestoCC(){
		escuchadorPANELPRESUPUESTO();
		jTPanePresupuesto.setSelectedIndex(3);
	}
	

	
/*Inicializo y cargo alineacinn de conlumnas en tablas*/	
	public void initAlineacionTablas(){
		alinearCentro = new DefaultTableCellRenderer();
		alinearDerecha = new DefaultTableCellRenderer();
		alinearIzquierda = new DefaultTableCellRenderer();
		
        alinearCentro.setHorizontalAlignment(SwingConstants.CENTER);
        alinearDerecha.setHorizontalAlignment(SwingConstants.RIGHT);
        alinearIzquierda.setHorizontalAlignment(SwingConstants.LEFT);
	}
	

/*Metodo para confirma si esta seguro que quiere cerrar la aplicacinn*/	
	public void cerrarVentana(){
	   int seleccion = JOptionPane.showOptionDialog(
			   this,
			   "nEstn seguro de que desea cerrar la aplicacinn?   ", 
			   "Taller Mitre",
			   JOptionPane.YES_NO_CANCEL_OPTION,
			   JOptionPane.QUESTION_MESSAGE,
			   null,    // null para icono por defecto.
			   new Object[] { "SI", "NO"},   // null para YES, NO y CANCEL
			   "opcion 1");
               if (seleccion == 0){//selecciono SI
					System.exit(0);					
				}		    
	}
	
/**CARGA TABLAS LISTA DE CLIENTES*/
    public void initTablaListarCliente(){
		modelClienteEdit = new DefaultTableModel(
				new Object[][] {
						{null, null, null, null, null, null},
						{null, null, null, null, null, null},
					},
					new String[] {
						"Apellido", "Nombre", "Direcci\u00F3n", "Tel\u00E9fono", "E-mail", "Seleccionar"
					}
				) {
					Class[] columnTypes = new Class[] {
						String.class, String.class, String.class, String.class, String.class, Boolean.class
					};
					//esta clase permite visualizar el checkbox en la tabla
					public Class getColumnClass(int columnIndex) {return columnTypes[columnIndex];}
				  };	
		jTClienteLista.setModel(modelClienteEdit);	 
		//esto me limpia la tabla cada vez que hago un listado nuevo
		modelClienteEdit.setRowCount(0);
		
		List<Cliente>listCli = null;
		listCli = ClienteFisica.list();
		for (Cliente x : listCli) {
			 modelClienteEdit.addRow(new Object[] { 
					 x.getApellido(), 
					 x.getNombre(), 
					 x.getDireccion(), 
					 x.getTelefono(), 
					 x.getEmail() });
			 }	
		
		jTClienteLista.setToolTipText("Lista de Clientes");
		jTClienteLista.getColumnModel().getColumn(0).setCellRenderer(alinearDerecha); //asigno alineacion centrada
		jTClienteLista.getColumnModel().getColumn(1).setCellRenderer(alinearDerecha); //asigno alineacion centrada
		jTClienteLista.getColumnModel().getColumn(2).setCellRenderer(alinearCentro); //asigno alineacion centrada
		jTClienteLista.getColumnModel().getColumn(3).setCellRenderer(alinearCentro); //asigno alineacion centrada
		}
    
/**FIN CARGA TABLAS LISTA DE CLIENTES*/		
    
    
/**CARGA TABLAS LISTA DE PRESUPUESTOS*/
    public void initTablaListarVehiculo(){
		modelVehiculoEdit = new DefaultTableModel(
				new Object[][] {
						{null, null, null, null, null, null},
						{null, null, null, null, null, null},
					},
					new String[] {
						"Marca", "Modelo", "Patente", "Color", "Ano", "Seleccinn"
					}
				) {
					Class[] columnTypes = new Class[] {
						String.class, String.class, String.class, String.class, String.class, Boolean.class
					};
					//esta clase permite visualizar el checkbox en la tabla
					public Class getColumnClass(int columnIndex) {return columnTypes[columnIndex];}
				  };	
		jTVehiculoLista.setModel(modelVehiculoEdit); 
		
		modelVehiculoEdit.setRowCount(0);
		
		List<Vehiculo>listVehi = null;
		Dueno d;
		listVehi = VehiculoFisica.list();
		for (Vehiculo x : listVehi) {
			d = DuenoFisica.findByIdVehiculo(x.getIdvehiculo());
			 modelVehiculoEdit.addRow(new Object[] { 
					 x.getMarca(), 
					 x.getModelo(), 
					 d.getPatente(), 
					 d.getColor(),
					 d.getAno()  });
			 }
		
		
    }
    
/**CARGA TABLAS LISTA DE PRESUPUESTOS*/
    public void initTablaListarPresupuesto(){
		modelPresupuestoEdit = new DefaultTableModel(
				new Object[][] {
						{"vw", "gol", "AAA 999", "rojo", "2011", Boolean.FALSE},
						{"RENAULT", "CLIO", "BBB 111", "VERDE", "2012", Boolean.FALSE},
						{"CITROEN", "C3", "DFG 326", "NEGRO", "2010", null},
						{"FIAT", "PUNTO", "ERT 632", "BLANCO", null, null},
					},
					new String[] {
						"Cliente", "Patente", "Color", "Emitido", "Km", "Selecci\u00F3n"
					}
				) {
					Class[] columnTypes = new Class[] {
						String.class, String.class, String.class, String.class, String.class, Boolean.class
					};
					//esta clase permite visualizar el checkbox en la tabla
					public Class getColumnClass(int columnIndex) {return columnTypes[columnIndex];}
				  };
	
		jTPresupuestoLista.setModel(modelPresupuestoEdit);   
		
		modelPresupuestoEdit.setRowCount(0);
		
		List<Presupuesto>list = null;
		list = PresupuestoFisica.list();
		Dueno d = null;
		Cliente c = null;
		String cli;
		for (Presupuesto x : list) {
			d = DuenoFisica.findById(x.getDueno().getIdduenio());
			c = ClienteFisica.findById(d.getCliente().getIdcliente());
			cli = c.getApellido()+", "+c.getNombre();
			 modelPresupuestoEdit.addRow(new Object[] { 
					 cli,
					 d.getPatente(),
					 d.getColor(),
					 x.getFechaemision(),
					 x.getKm()
					 });
			 }
		
		jTPresupuestoLista.setToolTipText("Lista de Presupuestos");
		jTPresupuestoLista.getColumnModel().getColumn(0).setCellRenderer(alinearIzquierda); //asigno alineacion centrada
		jTPresupuestoLista.getColumnModel().getColumn(1).setCellRenderer(alinearCentro); //asigno alineacion centrada
		jTPresupuestoLista.getColumnModel().getColumn(3).setCellRenderer(alinearCentro); //asigno alineacion centrada
		jTPresupuestoLista.getColumnModel().getColumn(4).setCellRenderer(alinearCentro); //asigno alineacion centrada
		
    }
	
/**  METODOS PARA FILTRAR LISTAS*/
	
/*filtros: paso el texto capturado y la tabla a la cual se le aplica el filtro*/
	private void filtrarTabla(JTextField jtf, DefaultTableModel modEdit, JTable jtable) {
        //codigo de filtro
		TableRowSorter<TableModel> modeloOrdenadoEdit = new TableRowSorter(modEdit);
    	String fil = jtf.getText();//.toLowerCase();
    	//filtrar todas las filas que tengan el texto "fil", sin discriminar minusculas de mayusculas.
    	if (fil.length() != 0){
//anda perfecto con minuscula y mayuscula gracias al "(?i)".
    		modeloOrdenadoEdit.setRowFilter (RowFilter.regexFilter("(?i)"+fil+"*.")); 
        }else{//reestablezco la tabla original, buscando con vacio.
        	modeloOrdenadoEdit.setRowFilter (RowFilter.regexFilter(""));        	
    	}
    	jtable.setRowSorter (modeloOrdenadoEdit);
    	
    }
	
	
	private void autoFiltro(){
		jTFClienteListarFiltro.addKeyListener(new KeyListener()
		{
			public void keyReleased(KeyEvent arg0) 
			{	//paso como parametro, el JTField, DefaultTableModel, JTable
				filtrarTabla(jTFClienteListarFiltro, modelClienteEdit, jTClienteLista);		}

			@Override
			public void keyPressed(KeyEvent e) {		}

			@Override
			public void keyTyped(KeyEvent e) {		}
    });
		jTFVehiculoListarFiltro.addKeyListener(new KeyListener()
		{
			public void keyReleased(KeyEvent arg0) 
			{	//paso como parametro, el JTField, DefaultTableModel, JTable
				filtrarTabla(jTFVehiculoListarFiltro, modelVehiculoEdit, jTVehiculoLista);
			}

			@Override
			public void keyPressed(KeyEvent e) {		}

			@Override
			public void keyTyped(KeyEvent e) {  	}
    });
		jTFPresupuestoListarFiltro.addKeyListener(new KeyListener()
		{
			public void keyReleased(KeyEvent arg0) 
			{	//paso como parametro, el JTField, DefaultTableModel, JTable
				filtrarTabla(jTFPresupuestoListarFiltro, modelPresupuestoEdit, jTPresupuestoLista);
			}

			@Override
			public void keyPressed(KeyEvent e) {		}

			@Override
			public void keyTyped(KeyEvent e) {		}
    });
		
	}
	
/**  METODOS PARA LISTAR CLIENTES, VEHICULOS, PRESUPUESTOS*/
//eventos a los jTabbedPanes correspondientes.
	private void listaObjetos(){
		jTPaneCliente.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                listarCliente(evt);
            }     });
		jTPaneVehiculo.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                listarVehiculo(evt);
            }     });
		jTPanePresupuesto.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                listarPresupuesto(evt);
            }     });
		
	}  
//actualizo la lista de clientes en la pestana LISTAR CLIENTES, funciona perfecto.
	public void listarCliente(javax.swing.event.ChangeEvent evt){
            int sel = 1; // pestana listar
       JTabbedPane seleccion = (JTabbedPane) evt.getSource();
        if(seleccion.getSelectedIndex() == sel){
           initTablaListarCliente();           
         }
    }
//Listar Vehiculos
	public void listarVehiculo(javax.swing.event.ChangeEvent evt){
        int sel = 1; // pestana listar
   JTabbedPane seleccion = (JTabbedPane) evt.getSource();
    if(seleccion.getSelectedIndex() == sel){
    	System.out.println("click en listar vehiculos");
    	initTablaListarVehiculo();
     }
	}
//Listar presupuestos
	public void listarPresupuesto(javax.swing.event.ChangeEvent evt){
        int sel = 1; // pestana listar
   JTabbedPane seleccion = (JTabbedPane) evt.getSource();
    if(seleccion.getSelectedIndex() == sel){
    	System.out.println("click en listar presupuestos");
    	initTablaListarPresupuesto();
     }
	}
/**  FIN METODOS PARA LISTAR CLIENTES, VEHICULOS, PRESUPUESTOS*/
	
	
	 private void eventoTeclado() {
 /** evento escape*/
	        KeyListener keyListenerEscape = new KeyAdapter() {
	            public void keyPressed(KeyEvent evt) {
	                if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
	                	cerrarVentana();
	                }
	            }
	        };
/** evento enter*/
	        KeyListener keyListenerEnter = new KeyAdapter() {
	            public void keyPressed(KeyEvent evt) {
	                if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
	                    int i = 0;
//	                	guardar(null);
	                }
	            }
	        };
/** evento de filtro de tablas listar de cada modulo*/
	        KeyListener keyListenerFiltroCliente = new KeyAdapter() {
	            public void keyPressed(KeyEvent evt) {
	                if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
	                	filtrarTabla(jTFClienteListarFiltro, modelClienteEdit, jTClienteLista);
	                }
	            }
	        };
	        KeyListener keyListenerFiltroVehiculo = new KeyAdapter() {
	            public void keyPressed(KeyEvent evt) {
	                if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
	                	filtrarTabla(jTFVehiculoListarFiltro, modelVehiculoEdit, jTVehiculoLista);
	                }
	            }
	        };
	        KeyListener keyListenerFiltroPresupuesto = new KeyAdapter() {
	            public void keyPressed(KeyEvent evt) {
	                if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
	                	filtrarTabla(jTFPresupuestoListarFiltro, modelPresupuestoEdit, jTPresupuestoLista);
	                }
	            }
	        };
	        
/**ASIGNO EVENTOS TECLADO*/
//EVENTOS CON ENTER
//	        panelCenter.addKeyListener(keyListenerEnter);
//FIN EVENTOS CON ENTER
	        
//EVENTOS CON ESCAPE
//	        panelCenter.addKeyListener(keyListenerEscape);
//FIN EVENTOS CON ESCAPE
        
//EVENTOS CON ENTER
	        jTFPresupuestoListarFiltro.addKeyListener(keyListenerFiltroPresupuesto);
	        jTFClienteListarFiltro.addKeyListener(keyListenerFiltroCliente);
	        jTFVehiculoListarFiltro.addKeyListener(keyListenerFiltroVehiculo);
//FIN EVENTOS CON ENTER       
	      //EVENTOS CON F1 AYUDA        
	      //EVENTOS CON F2 EDITAR
	      //EVENTOS CON F3 BUSCAR
	      //EVENTOS CON F4 NUEVO
	      //EVENTOS CON F5 ACTUALIZAR
	      //EVENTOS CON F10 GUARDAR E IMPRIMIR
	      //EVENTOS CON F
	      //EVENTOS CON F
	        
	        
       
	    }

	 
/**METODOS DE BUSCAR CLIENTES */	 
	 public void buscarCliente(){
		 new ClienteBuscar();
	 }
	 
	 public void buscarPresupuesto(){
		 new PresupuestoBuscar();
	 }
	 
	 public void buscarVehiculo(){
		 new VehiculoBuscar();
	 }
}
